library(dplyr)
library(mapview)
library(readr)
library(sf)
library(tidygeocoder)
library(tigris)
library(tidyr)
library(tibble)
library(stringr)
travel <- read_csv(here::here("data","travel.csv"))
#travel
sales_geo <- read_csv(here::here("data","sales_geocoded.csv"))
#sales_geo
destinations <- travel %>%
group_by(travelcountry, travellat, travellon) %>%
summarize(n = n()) %>%
ungroup() %>%
arrange(desc(n))
#destinations
destinations_sf <- destinations %>%
st_as_sf(
coords = c("travellon", "travellat"),
crs = 4326
)
Viz.img<-destinations_sf %>%
mapview(
cex = "n",
col.regions = "#0197F6",
alpha.regions = 0.5
)
Viz.img
# img <- magick::image_read('Rplot.png')
# plot(img) # or print(img)
travel_connections <- travel %>%
group_by(homelat, homelon, travellat, travellon) %>%
summarize(n = n()) %>%
ungroup() %>%
arrange(desc(n)) %>%
rowid_to_column()
travel_connections_pl <- travel_connections %>%
pivot_longer(cols = homelat:travellon) %>%
mutate(type = ifelse(str_detect(name, "^home"), "home", "travel")) %>%
mutate(latlon = ifelse(str_detect(name, "lat$"), "lat", "lon")) %>%
select(-name, -n) %>%
pivot_wider(
names_from = latlon,
values_from = value
)
travel_connection_sf <- travel_connections_pl %>%
st_as_sf(
coords = c("lon", "lat"),
crs = 4326
)
travel_connection_multipoints_sf <- travel_connection_sf %>%
group_by(rowid) %>%
summarise(do.union = FALSE)
travel_connection_multipoints_sf %>%
mapview(
col.regions = "#0197F6",
alpha.regions = 0.5
)
travel_connection_lines_sf <- travel_connection_multipoints_sf %>%
st_cast("LINESTRING")
travel_connection_lines_sf %>%
mapview(
lwd = 0.05,
color = "#0197F6"
)
travel_connection_lines_sf %>%
left_join(
travel_connections %>%
select(rowid, n)
) %>%
mapview(
lwd = 0.05,
color = "#B2B5B6",
legend = FALSE
) +
mapview(
destinations_sf,
col.regions = "#0197F6",
col = "#0197F6",
cex = "n",
alpha.regions = 0.1,
alpha = 0.1,
legend = FALSE
)
sales_geo_sf <- sales_geo %>%
st_as_sf(
coords = c("lat", "lon"),
crs = 4326
)
sales_geo_sf %>%
mapview(
cex = "purchases",
col.regions = "#0197F6")
ca_counties_sf <- tigris::counties(state = "CA") %>%
st_set_crs(4326)
##
|
| | 0%
|
| | 1%
|
|= | 1%
|
|= | 2%
|
|== | 2%
|
|== | 3%
|
|== | 4%
|
|=== | 4%
|
|=== | 5%
|
|==== | 5%
|
|==== | 6%
|
|===== | 6%
|
|===== | 7%
|
|===== | 8%
|
|====== | 8%
|
|====== | 9%
|
|======= | 9%
|
|======= | 10%
|
|======= | 11%
|
|======== | 11%
|
|======== | 12%
|
|========= | 12%
|
|========= | 13%
|
|========= | 14%
|
|========== | 14%
|
|========== | 15%
|
|=========== | 15%
|
|=========== | 16%
|
|============ | 16%
|
|============ | 17%
|
|============ | 18%
|
|============= | 18%
|
|============= | 19%
|
|============== | 19%
|
|============== | 20%
|
|============== | 21%
|
|=============== | 21%
|
|=============== | 22%
|
|================ | 22%
|
|================ | 23%
|
|================ | 24%
|
|================= | 24%
|
|================= | 25%
|
|================== | 25%
|
|================== | 26%
|
|=================== | 26%
|
|=================== | 27%
|
|=================== | 28%
|
|==================== | 28%
|
|==================== | 29%
|
|===================== | 29%
|
|===================== | 30%
|
|===================== | 31%
|
|====================== | 31%
|
|====================== | 32%
|
|======================= | 32%
|
|======================= | 33%
|
|======================= | 34%
|
|======================== | 34%
|
|======================== | 35%
|
|========================= | 35%
|
|========================= | 36%
|
|========================== | 36%
|
|========================== | 37%
|
|========================== | 38%
|
|=========================== | 38%
|
|=========================== | 39%
|
|============================ | 39%
|
|============================ | 40%
|
|============================ | 41%
|
|============================= | 41%
|
|============================= | 42%
|
|============================== | 42%
|
|============================== | 43%
|
|============================== | 44%
|
|=============================== | 44%
|
|=============================== | 45%
|
|================================ | 45%
|
|================================ | 46%
|
|================================= | 46%
|
|================================= | 47%
|
|================================= | 48%
|
|================================== | 48%
|
|================================== | 49%
|
|=================================== | 49%
|
|=================================== | 50%
|
|=================================== | 51%
|
|==================================== | 51%
|
|==================================== | 52%
|
|===================================== | 52%
|
|===================================== | 53%
|
|===================================== | 54%
|
|====================================== | 54%
|
|====================================== | 55%
|
|======================================= | 55%
|
|======================================= | 56%
|
|======================================== | 56%
|
|======================================== | 57%
|
|======================================== | 58%
|
|========================================= | 58%
|
|========================================= | 59%
|
|========================================== | 59%
|
|========================================== | 60%
|
|========================================== | 61%
|
|=========================================== | 61%
|
|=========================================== | 62%
|
|============================================ | 62%
|
|============================================ | 63%
|
|============================================ | 64%
|
|============================================= | 64%
|
|============================================= | 65%
|
|============================================== | 65%
|
|============================================== | 66%
|
|=============================================== | 66%
|
|=============================================== | 67%
|
|=============================================== | 68%
|
|================================================ | 68%
|
|================================================ | 69%
|
|================================================= | 69%
|
|================================================= | 70%
|
|================================================= | 71%
|
|================================================== | 71%
|
|================================================== | 72%
|
|=================================================== | 72%
|
|=================================================== | 73%
|
|=================================================== | 74%
|
|==================================================== | 74%
|
|==================================================== | 75%
|
|===================================================== | 75%
|
|===================================================== | 76%
|
|====================================================== | 76%
|
|====================================================== | 77%
|
|====================================================== | 78%
|
|======================================================= | 78%
|
|======================================================= | 79%
|
|======================================================== | 79%
|
|======================================================== | 80%
|
|======================================================== | 81%
|
|========================================================= | 81%
|
|========================================================= | 82%
|
|========================================================== | 82%
|
|========================================================== | 83%
|
|========================================================== | 84%
|
|=========================================================== | 84%
|
|=========================================================== | 85%
|
|============================================================ | 85%
|
|============================================================ | 86%
|
|============================================================= | 86%
|
|============================================================= | 87%
|
|============================================================= | 88%
|
|============================================================== | 88%
|
|============================================================== | 89%
|
|=============================================================== | 89%
|
|=============================================================== | 90%
|
|=============================================================== | 91%
|
|================================================================ | 91%
|
|================================================================ | 92%
|
|================================================================= | 92%
|
|================================================================= | 93%
|
|================================================================= | 94%
|
|================================================================== | 94%
|
|================================================================== | 95%
|
|=================================================================== | 95%
|
|=================================================================== | 96%
|
|==================================================================== | 96%
|
|==================================================================== | 97%
|
|==================================================================== | 98%
|
|===================================================================== | 98%
|
|===================================================================== | 99%
|
|======================================================================| 99%
|
|======================================================================| 100%
ca_counties_sf %>%
mapview(col.regions = "#0197F6",
col = "black")
sales_by_county_sf <- sales_geo_sf %>%
st_join(ca_counties_sf %>%
select(GEOID)) %>%
as_tibble() %>%
group_by(GEOID) %>%
summarize(
median_purchases = median(purchases),
avg_purchases = mean(purchases),
sum_purchases = sum(purchases)
) %>%
ungroup() %>%
right_join(ca_counties_sf, by = "GEOID") %>%
select(GEOID:sum_purchases, NAME, geometry) %>%
st_as_sf(crs = 4326)
sales_by_county_sf %>%
mapview(
zcol = "avg_purchases",
color = "grey",
map.types = "CartoDB",
layer.name = "Average Purchases"
)
sales_by_county_sf %>%
mapview(
zcol = "sum_purchases",
color = "grey",
map.types = "CartoDB",
layer.name = "Sum Purchases"
)